#include <stdio.h>

int main(int argc, char *argv[])
{
    int a[3] = {0};//局部数组       memsrt(a,0,sizeof(a));
    char buffer[1024] = {0};
    int *p = a;
    int (*pa)[3];//整型数组指针变量：pa是一个变量，保存的是地址，该地址是数组的地址，该数组是一个整型数组，有三个元素

    printf("sizeof(pa) = %ld\n",sizeof(pa));
    pa = &a;

    printf("&a[0] = %p\n",&a[0]);//数组首元素的地址
    printf("a = %p\n",a);//数组首元素的地址
    printf("&a = %p\n",&a);//数组的地址

    printf("&a[1] = %p\n",&a[1]);//数组首元素的地址
    printf("a + 1 = %p\n",a+1);//数组首元素的地址
    printf("&a + 1 = %p\n",&a+1);//数组的地址


    for(int i = 0; i < sizeof(a) / sizeof(a[0]); i++)
    {
        //scanf("%d",&a[i]);
        //scanf("%d",a + i);//数组名：指针常量，保存的数组首元素的地址
        //scanf("%d",&p[i]);
        //scanf("%d",p++);    //p = p + 1;
        scanf("%d",*pa + i);//*pa == a;pa == &a
    }
    p = a;
    for(int i = 0; i < sizeof(a) / sizeof(a[0]); i++)
    {
        //printf("a[%d] = %d\n",i,a[i]);
        //printf("a[%d] = %d\n",i,*(p + i));//[] = *()
        printf("a[%d] = %d\n",i,*(*pa + i));
    }
    return 0;
}